home *** CD-ROM | disk | FTP | other *** search
- " Vim syntax file
- " Language: Simula
- " Maintainer: Haakon Riiser <haakon@riiser.net>
- " Last Change: 2001 Apr 25
-
- " For version 5.x: Clear all syntax items
- " For version 6.x: Quit when a syntax file was already loaded
- if version < 600
- syn clear
- elseif exists("b:current_syntax")
- finish
- endif
-
- " No case sensitivity in Simula
- syn case ignore
-
- syn match simulaComment "^%.*$" contains=simulaTodo
- syn region simulaComment start="!\|\<comment\>" end=";" contains=simulaTodo
-
- " Text between the keyword 'end' and either a semicolon or one of the
- " keywords 'end', 'else', 'when' or 'otherwise' is also a comment
- syn region simulaComment start="\<end\>"lc=3 matchgroup=Statement end=";\|\<\(end\|else\|when\|otherwise\)\>"
-
- syn match simulaCharError "'.\{-2,}'"
- syn match simulaCharacter "'.'"
- syn match simulaCharacter "'!\d\{-}!'" contains=simulaSpecialChar
- syn match simulaString '".\{-}"' contains=simulaSpecialChar,simulaTodo
-
- syn keyword simulaBoolean true false
- syn keyword simulaCompound begin end
- syn keyword simulaConditional else if otherwise then until when
- syn keyword simulaConstant none notext
- syn keyword simulaFunction procedure
- syn keyword simulaOperator eq eqv ge gt imp in is le lt ne new not qua
- syn keyword simulaRepeat while for
- syn keyword simulaReserved activate after at before delay go goto label prior reactivate switch to
- syn keyword simulaStatement do inner inspect step this
- syn keyword simulaStorageClass external hidden name protected value
- syn keyword simulaStructure class
- syn keyword simulaType array boolean character integer long real short text virtual
- syn match simulaAssigned "\<\h\w*\s*\((.*)\)\=\s*:\(=\|-\)"me=e-2
- syn match simulaOperator "[&:=<>+\-*/]"
- syn match simulaOperator "\<and\(\s\+then\)\=\>"
- syn match simulaOperator "\<or\(\s\+else\)\=\>"
- syn match simulaReferenceType "\<ref\s*(.\{-})"
- syn match simulaSemicolon ";"
- syn match simulaSpecial "[(),.]"
- syn match simulaSpecialCharErr "!\d\{-4,}!" contained
- syn match simulaSpecialCharErr "!!" contained
- syn match simulaSpecialChar "!\d\{-}!" contains=simulaSpecialCharErr contained
- syn match simulaTodo "xxx\+" contained
-
- " Integer number (or float without `.')
- syn match simulaNumber "-\=\<\d\+\>"
- " Real with optional exponent
- syn match simulaReal "-\=\<\d\+\(\.\d\+\)\=\(&&\=[+-]\=\d\+\)\=\>"
- " Real starting with a `.', optional exponent
- syn match simulaReal "-\=\.\d\+\(&&\=[+-]\=\d\+\)\=\>"
-
- if version >= 508 || !exists("did_simula_syntax_inits")
- if version < 508
- let did_simula_syntax_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
-
- HiLink simulaAssigned Identifier
- HiLink simulaBoolean Boolean
- HiLink simulaCharacter Character
- HiLink simulaCharError Error
- HiLink simulaComment Comment
- HiLink simulaCompound Statement
- HiLink simulaConditional Conditional
- HiLink simulaConstant Constant
- HiLink simulaFunction Function
- HiLink simulaNumber Number
- HiLink simulaOperator Operator
- HiLink simulaReal Float
- HiLink simulaReferenceType Type
- HiLink simulaRepeat Repeat
- HiLink simulaReserved Error
- HiLink simulaSemicolon Statement
- HiLink simulaSpecial Special
- HiLink simulaSpecialChar SpecialChar
- HiLink simulaSpecialCharErr Error
- HiLink simulaStatement Statement
- HiLink simulaStorageClass StorageClass
- HiLink simulaString String
- HiLink simulaStructure Structure
- HiLink simulaTodo Todo
- HiLink simulaType Type
-
- delcommand HiLink
- endif
-
- let b:current_syntax = "simula"
- " vim: sts=4 sw=4 ts=8
-